

package com.hazelcast.internal.networking;

/**
 * A strategy for controlling what needs to be done in case of an Exception
 * being thrown when the {@link Networking} processes events.
 * <p>
 * For example if a connection is making use of the Channel, the Connection
 * could close itself when an error was encountered.
 */
public interface ChannelErrorHandler {

    /**
     * Called when an error was detected.
     *
     * @param channel the Channel that ran into an error. It could be that
     *                the Channel is null if error
     *                was thrown not related to a particular Channel.
     * @param error   the Throwable causing problems
     */
    void onError(Channel channel, Throwable error);
}
